# coding=utf8
__author__ = 'valux'
__mail__ = 'valux@qq.com'


class Numeric(object):
    def __init__(self, a, b):
        self.a = a
        self.b = b

    def __add__(self, other):
        return self.a * self.b + other.a * other.b

    def __sub__(self, other):
        return self.a * self.b - other.a * other.b

    def __mul__(self, other):
        return (self.b - self.a) * (other.b - other.a)

    def __div__(self, other):
        return (self.b + self.a) / (other.b - other.a)

    def __floordiv__(self, other):
        return (self.b + self.a) // (other.b - other.a)

    def __truediv__(self, other):
        pass

    def __mod__(self, other):
        pass

    def __divmod__(self, other):
        pass

    def __pos__(self):
        pass

    def __lshift__(self, other):
        pass

    def __rshift__(self, other):
        pass


if __name__ == '__main__':
    n1 = Numeric(3, 4)
    n2 = Numeric(6, 7)

    """
    >>> TypeError: unsupported operand type(s) for +: 'Numeric' and 'Numeric'
    """

    print(n1 + n2)
    """
    >>> 54
    """

    print(5 // 3)
